<?php
//получает номер входящего транситалла
//и создает для него в Word письмо ответ
//также копирует все файлы с комментариями в папку с ответом


//загружаем функцию поиска файлов
include_once './scan.php';
//подключаемся к базе
include_once './db_connect.php';
        
$dbh = mysql_connect(HOST, USER, PSWD) or die("Не могу соединиться с MySQL.");
mysql_select_db(DATABASE) or die("Не могу подключиться к базе.");
$res = mysql_query("SET NAMES utf8");

//Получаем переменные
$answer_in = $_POST['answer_in'];
$answer_out = $_POST['answer_out'];
$date_out = date('Y-m-d');

//получаем все строки с данным входящим трансмиталлом
$sql = "SELECT * FROM ".BASE." WHERE transmit_in = '$answer_in' 
        ORDER BY project, drawing, revision, part";
//echo $sql.'<br/>';

mysql_query($sql);
if (mysql_errno () > 0) echo mysql_errno().'  '.mysql_error().'<br/>';
$result = mysql_query($sql);

if (mysql_num_rows($result) > 0) {
    // запускаем Word
    $word = new COM("word.application") or die("Ошибка запуска Word");
    //echo "Word запушен, версия {$word->Version}<br>";
    
    //создаем папку для ответа
    if ( (!is_dir("../".ANSWER_PATH.SEPARATOR.$answer_in)) &&
             (!mkdir("../".ANSWER_PATH.SEPARATOR.$answer_in, 0, true)) ) //если нет, создаем папку
                echo '<font color="red">Make folder '.ANSWER_PATH.SEPARATOR.$answer_in." - FAILED</font><br/>";
    else {
        //очищаем папку от файлов
        //перебираем все файлы *.txt в хранилище
        $files = scan('|.*|', "../".ANSWER_PATH.SEPARATOR.$answer_in);
        //удаляем файлы
        foreach ($files as $file)
            unlink ($file['path'].SEPARATOR.$file['filename']);

        // поверх всех окон
        $word->Visible = 1;
        // или просто открываем существующий
        $word->Documents->Open(realpath("../".ANSWER_PATH.SEPARATOR.ANSWER_TEMPLATE));
        //производим замену номера трансмиталла
        $word->Selection->Find->Execute("[transmittal]",0,0,0,0,0,1,2,0,"",1,0,0,0,0);
        $word->Selection->TypeText(iconv('utf-8','windows-1251', $answer_in));

        //производим вывод информации о чертежах
        $word->Selection->Find->Execute("[drawing]",0,0,0,0,0,1,2,0,"",1,0,0,0,0);

        while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
            $filename = $row['project'].' '.$row['drawing'].'_Rev'.sprintf("%02d",$row['revision']).'_'.sprintf("%02d",$row['part']);
            $word->Selection->TypeText(iconv('utf-8','windows-1251', $filename.' - ' ));
            if ($row['checked'] == 0) $word->Selection->TypeText(iconv('utf-8','windows-1251', 'не проверен' ));
            else
                if ($row['aproved'] == 1) $word->Selection->TypeText(iconv('utf-8','windows-1251', 'согласован' ));
                else {
                    $word->Selection->TypeText(iconv('utf-8','windows-1251', 'есть замечания' ));
                    $word->Selection->TypeParagraph;
                    $word->Selection->TypeText(iconv('utf-8','windows-1251', $row['comments'] ));

                    //копируем файлы
                    if (copy("../".STORAGE_PATH.SEPARATOR.$row['path'].SEPARATOR.$filename.'.pdf',
                            "../".ANSWER_PATH.SEPARATOR.$answer_in.SEPARATOR.$filename.'.pdf')) 
                         echo '<font color="green">'.$filename.'.pdf - OK</font><br/>';
                    else echo '<font color="red">'.$filename.'.pdf - COPY FAILED</font><br/>';
                }
           $word->Selection->TypeParagraph;
           $word->Selection->TypeParagraph;
        }

        //сохраняем файл
        $path =  realpath("../".ANSWER_PATH.SEPARATOR.$answer_in);
        $word->ChangeFileOpenDirectory($path);
        $word->ActiveDocument->SaveAs(iconv('utf-8','windows-1251',$answer_in.'.doc'));
        
        // закрываем без лишних диалогов
        $word->Documents[1]->Close(0);
        // выход из Word
        $word->Quit();

        // очистка экземпляра COM
        $word = NULL;
        
        //формируем запрос для обновления transmit_out, date_out
        $sql = "UPDATE ".BASE." SET
          transmit_out = '$answer_out',
          date_out = '$date_out'
          WHERE transmit_in = '$answer_in'";
//              echo $sql.'<br/>';

        mysql_query($sql);
        if (mysql_errno () > 0) echo mysql_errno().'  '.mysql_error().'<br/>';
        else echo '<font color="green">ASWER COMPLETE</font><br/>';
        
    }
}
else echo "<font color='red'>THERE ISN'T TRANSMITTAL IN DATABASE</font><br/>";

//закрываем соединение с базой
mysql_close($dbh);
?>